{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/fabiomatricardi/17megabyteCHATBOT/blob/main/17megabyteChatBot.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 🦙🧑‍💻 CrossEncoder ChatBot == 17Mb model ⚖️🔬"
      ],
      "metadata": {
        "id": "xInXuHl1-Lvj"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "%%capture\n",
        "!pip install sentence_transformers\n",
        "!pip install rich"
      ],
      "metadata": {
        "id": "TWqYdzra-MjG"
      },
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "from tqdm.rich import trange, tqdm\n",
        "from rich import console\n",
        "from rich.panel import Panel\n",
        "from rich.markdown import Markdown\n",
        "from rich.text import Text\n",
        "import warnings\n",
        "warnings.filterwarnings(action='ignore')\n",
        "import datetime\n",
        "from rich.console import Console\n",
        "console = Console(width=110)\n",
        "from transformers import pipeline\n",
        "import os\n",
        "## Logger file\n",
        "tstamp = datetime.datetime.now()\n",
        "tstamp = str(tstamp).replace(' ','_')\n",
        "logfile = f'{tstamp}_log.txt'\n",
        "def writehistory(text):\n",
        "    with open(logfile, 'a', encoding='utf-8') as f:\n",
        "        f.write(text)\n",
        "        f.write('\\n')\n",
        "    f.close()\n",
        "listato = [\n",
        "    {'q': 'Where is Windscribe located?', 'a' : 'The actual Windscribe headquarters is based in Toronto, Ontario, Canada. However, we are a diverse company with employees working on three continents, in over 7 countries.'},\n",
        "    {'q': 'What is WireGuard?' , 'a': 'WireGuard is a connection protocol used in the Windscribe desktop and mobile applications. It is typically faster than OpenVPN (called UDP and TCP in the apps) and more flexible than IKEv2, making it a great option for securing your online activity.' },\n",
        "    {'q': 'What kind of encryption does Windscribe use?', 'a' : \"Windscribe's encryption varies based on the protocol selected, as well as the format of our app you are using: OpenVPN: Our OpenVPN implementation uses the AES-256-GCM cipher with SHA512 auth and a 4096-bit RSA key. Perfect forward secrecy is also supported. IKEv2: Our in-app IKEv2 implementation utilizes AES-256-GCM for encryption, SHA-256 for integrity checks. Desktop and Android apps use ECP384 for Diffie-Hellman key negotiation (DH group 20), and iOS uses ECP521 for Diffie-Hellman key negotiation (DH group 21). WireGuard: WireGuard is an opinionated protocol that uses ChaCha20 for symmetric encryption, authenticated with Poly1305; Curve25519 for ECDH; BLAKE2s for hashing and keyed hashing; SipHash24 for hashtable keys; and HKDF for key derivation.\"},\n",
        "    {'q': 'What is OpenVPN?', 'a' : 'Our OpenVPN implementation uses the AES-256-GCM cipher with SHA512 auth and a 4096-bit RSA key. Perfect forward secrecy is also supported.'},\n",
        "    {'q': 'What is IKEv2?', 'a' : 'Our in-app IKEv2 implementation utilizes AES-256-GCM for encryption, SHA-256 for integrity checks. Desktop and Android apps use ECP384 for Diffie-Hellman key negotiation (DH group 20), and iOS uses ECP521 for Diffie-Hellman key negotiation (DH group 21).'},\n",
        "    {'q': 'What is WireGuard?', 'a' : 'WireGuard is an opinionated protocol that uses ChaCha20 for symmetric encryption, authenticated with Poly1305; Curve25519 for ECDH; BLAKE2s for hashing and keyed hashing; SipHash24 for hashtable keys; and HKDF for key derivation.'},\n",
        "    {'q': 'Can I use Windscribe without an internet connection?', 'a' : 'In order to use Windscribe, you must have an existing internet connection, such as mobile data, home internet or public WiFi. Windscribe does not provide an internet connection, we simply encrypt and reroute your existing internet connection through our secure VPN servers. This means that the bandwidth you use with the VPN is also being used with your Internet Service Provider (ISP).'},\n",
        "\n",
        "]\n",
        "questions = []\n",
        "answers = []\n",
        "for i in listato:\n",
        "  questions.append(i['q'])\n",
        "  answers.append(i['a'])"
      ],
      "metadata": {
        "id": "Mizv0EuI-MgK"
      },
      "execution_count": 4,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import time,os,sys\n",
        "\n",
        "def typingPrint(text):\n",
        "  for character in text:\n",
        "    sys.stdout.write(character)\n",
        "    sys.stdout.flush()\n",
        "    time.sleep(0.05)"
      ],
      "metadata": {
        "id": "GD66WYszR_ri"
      },
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "> PromptTemplates from LangChain for TinyDolphin"
      ],
      "metadata": {
        "id": "ZwIrUlpCyXzG"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# @title Prompt_Templates from LAngChain for TinyDolphin 1.1B\n",
        "from langchain.prompts import PromptTemplate\n",
        "# Templates for TinyDolphin\n",
        "# tmplt_TDolphin_summary.format(context=yourcontext)\n",
        "tmplt_TDolphin_summary = PromptTemplate.from_template(\n",
        "    \"\"\"<|im_start|>system\n",
        "You are a helpful assistant.<|im_end|>\n",
        "<|im_start|>user\n",
        "Given this context:\n",
        "[context]{context}\n",
        "[end of context]\n",
        "\n",
        "- SUMMARY:\n",
        "<|im_end|>\n",
        "<|im_start|>assistant\"\"\"\n",
        ")\n",
        "# tmplt_TDolphin_3topics.format(context=yourcontext)\n",
        "tmplt_TDolphin_3topics = PromptTemplate.from_template(\n",
        "    \"\"\"<|im_start|>system\n",
        "You are a helpful assistant.<|im_end|>\n",
        "<|im_start|>user\n",
        "Given this context:\n",
        "[context]{context}\n",
        "[end of context]\n",
        "\n",
        "List the three main topics from the context:\n",
        "<|im_end|>\n",
        "<|im_start|>assistant\"\"\"\n",
        ")\n",
        "# tmplt_TDolphin_3questions.format(context=yourcontext)\n",
        "tmplt_TDolphin_3questions = PromptTemplate.from_template(\n",
        "    \"\"\"<|im_start|>system\n",
        "You are a helpful assistant.<|im_end|>\n",
        "<|im_start|>user\n",
        "Given this context:\n",
        "[context]{context}\n",
        "[end of context]\n",
        "\n",
        "Generate three concise questions about the text.\n",
        "<|im_end|>\n",
        "<|im_start|>assistant\"\"\"\n",
        ")\n",
        "# tmplt_TDolphin_RAG.format(context=yourcontext, query=yourqeustion)\n",
        "tmplt_TDolphin_RAG = PromptTemplate.from_template(\n",
        "    \"\"\"<|im_start|>system\n",
        "You are a helpful assistant.<|im_end|>\n",
        "<|im_start|>user\n",
        "Given this context:\n",
        "[context]{context}\n",
        "[end of context]\n",
        "\n",
        "Use the provided context to reply the user question:\n",
        "{query}\n",
        "<|im_end|>\n",
        "<|im_start|>assistant\"\"\"\n",
        ")"
      ],
      "metadata": {
        "cellView": "form",
        "id": "_DegxxcIvaAW"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "load document and chunck for FAQ preparartions"
      ],
      "metadata": {
        "id": "HKD1iWOPaErI"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# reading text file into string\n",
        "with open('/content/Maybe Embeddings is what you need.txt', encoding='utf-8') as f:\n",
        "  article = f.read()\n",
        "f.close()\n",
        "#tokens in the article\n",
        "import tiktoken\n",
        "encoding = tiktoken.get_encoding(\"r50k_base\")\n",
        "console.print(f\"Tokens in the article: {len(encoding.encode(article))}\")\n",
        "#Preparing questions with big granularity\n",
        "from langchain.text_splitter import TokenTextSplitter\n",
        "TOKENtext_splitter = TokenTextSplitter(chunk_size=400, chunk_overlap=50)\n",
        "q_context = TOKENtext_splitter.split_text(article) #create a list\n",
        "console.print(f\"Number of documents: {len(q_context)}\")"
      ],
      "metadata": {
        "id": "Uc5jQTtwYizt",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49
        },
        "outputId": "90b0fa80-47c7-4096-8186-11eb973cb021"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Tokens in the article: \u001b[1;36m3028\u001b[0m\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Tokens in the article: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3028</span>\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Number of documents: \u001b[1;36m9\u001b[0m\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Number of documents: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">9</span>\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "console.print(f\"Number of documents: {len(q_context)}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 33
        },
        "id": "ivj273qyYkuv",
        "outputId": "0aa09c48-08cc-4db0-cad6-b029125e6a4b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Number of documents: \u001b[1;36m9\u001b[0m\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Number of documents: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">9</span>\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Testing the tinest CrossReranker exsting - ms-marco-TinyBERT-L-2"
      ],
      "metadata": {
        "id": "hfL6Y4dRRQ-Y"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sentence_transformers import CrossEncoder\n",
        "\n",
        "# Load the model, here we use our base sized model\n",
        "model = CrossEncoder(\"cross-encoder/ms-marco-TinyBERT-L-2\")  # 17 MegaByte !!\n",
        "\n",
        "# Lets get the scores\n",
        "query = 'Where is Windscribe located?'\n",
        "results_q = model.rank(query, questions, return_documents=True, top_k=3)\n",
        "results_a = model.rank(query, answers, return_documents=True, top_k=3)"
      ],
      "metadata": {
        "id": "o09sIRL-RQ-Z",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 177,
          "referenced_widgets": [
            "07b4ca88df3e4314a2ba139052d100dd",
            "c0e0f6e6b7ce46e4806d0ed78ef53b3e",
            "7c91d404704940208141c725ed1c8d8f",
            "950bb6a7d0334f85a3f3c6d94a51d53d",
            "8d7ef8871cd44cc9a55f082e3ae79951",
            "960d5e51478a403a93bc731a5955b4e2",
            "551c3d866df54bc4aeb755bffcad77bc",
            "1455f7eafdfa4ac6a8d9eaec449cd3e1",
            "7e142612ed8046e581ef906fe4db285f",
            "0b3d7425dc0e435199e99e660831a3fd",
            "b14e7e93829e4f42b83c73d02232aa04",
            "30468f04c6494ffd8f4dc630ef048e8c",
            "8202a5f0755e455fa608ec3e3704b179",
            "3f09f534fe50454b8d6c936e22c4a61f",
            "0386e36506204b438bcbacff7de4e22a",
            "deac46cc155943d184842e55e65c94bb",
            "773961d9d12f41be8db25e37faf837c4",
            "2f78b6329da7494d8b4a449ba648b868",
            "9ee640e35bf04de8a56c670af3a0336b",
            "4067a65a210c4e2e9bcc450ae8756717",
            "d456fd3fbf174fe2b0a1bb4089112c6b",
            "24819a3291c84586a2fe8592e535d707",
            "89e37a58389d4607951dc4057b057d1d",
            "fda8c1196cd34866be355915fb7d78a8",
            "02bf05f541de447f894878719bb44101",
            "e688bffe76924ecab38507a61d27d4e2",
            "336525189f2543b99ca2c4ccd04d92ad",
            "18cef3a01ab3482d884de1efea4062db",
            "04434fd220dd43768a24ce8d586921d3",
            "b539c8d3c59845258f8ce66fe2f5e727",
            "2ff53ee93f104c939fc3e7913116169a",
            "e387031473414d6f99c99d286c233ae6",
            "c80065725b5945239a9bf7678b4bb779",
            "8c7a4c4662ef44cfb8c0cb109b9ee03b",
            "90fba3f54b864083bffcab1cd8a3ee13",
            "c0dd177cea764ea5b41b3522f6964a61",
            "b0ad75afdac04d42b7d6c506004366d1",
            "1742ac4d8e904dfba25e0d01327af695",
            "72b5138ce3ce47718e61ed095e89d1f2",
            "44b72d96738a47a9b43ac2029ef154e8",
            "7d6a6f99ef514aa99cf9d4b19ddbb301",
            "78918b883ca04c8eb98777fc2e5ffa59",
            "bb6807450d634f51b420e1cbe73b073f",
            "c60a4b63676a43ab8e2644c03f28ec50",
            "14c7c742e9044a22af6a54ba0a49d748",
            "e3fdf8eee24c47a68a1d3bb024198830",
            "ae2bb3aa26cb4e3bb9d0ef8ab375cabd",
            "b20327442fce42a78857a9e4509ec99d",
            "6b6bcfa595554f6c809a5d8688b3ebf9",
            "bb6f13896e97431598f075975b5991b1",
            "2214b0ccd2dd442897110e7aa2237ff2",
            "1b6946a2d54849acba532d4988823c21",
            "b84cd7b1f5f34c54a5ce773cdc4fa7e6",
            "d73f804d2f2c478a94eecc17ffc8afaa",
            "cf19e4b74ca148d193fad4103a8eb146"
          ]
        },
        "outputId": "cb04006f-0310-418f-e53d-1bb6d1691dff"
      },
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "config.json:   0%|          | 0.00/612 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "07b4ca88df3e4314a2ba139052d100dd"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "pytorch_model.bin:   0%|          | 0.00/17.6M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "30468f04c6494ffd8f4dc630ef048e8c"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "tokenizer_config.json:   0%|          | 0.00/543 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "89e37a58389d4607951dc4057b057d1d"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "vocab.txt:   0%|          | 0.00/232k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "8c7a4c4662ef44cfb8c0cb109b9ee03b"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "special_tokens_map.json:   0%|          | 0.00/112 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "14c7c742e9044a22af6a54ba0a49d748"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "def print_ranks(model_rank, title):\n",
        "  #https://rich.readthedocs.io/en/stable/tables.html\n",
        "  from rich.table import Table\n",
        "  table = Table(title=title, show_lines=True)\n",
        "\n",
        "  table.add_column(\"Score\", justify=\"right\", style=\"magenta\", no_wrap=True)\n",
        "  table.add_column(\"Text\", justify=\"left\", style=\"cyan\")\n",
        "  table.add_column(\"Doc_id\", justify=\"center\", style=\"cyan\")\n",
        "  #table.add_column(\"Box Office\", justify=\"right\", style=\"green\")\n",
        "  escore = f\"{model_rank[0]['score']:.4f}\"\n",
        "  table.add_row(escore, model_rank[0]['text'],f\"{model_rank[0]['corpus_id']}\",style=\"red1 bold\")\n",
        "  for hit in model_rank[1:]:\n",
        "    esscore = f\"{hit['score']:.4f}\"\n",
        "    table.add_row(esscore, hit['text'], f\"{hit['corpus_id']}\")\n",
        "  console.print(table)"
      ],
      "metadata": {
        "id": "MFDNMkiRRQ-Z"
      },
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "print_ranks(results_a, \"ms-marco-TinyBERT-L-2\")\n",
        "print_ranks(results_q, \"ms-marco-TinyBERT-L-2\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 553
        },
        "id": "ED3xYopbRHl9",
        "outputId": "0eb0912e-b8e0-4a81-e640-d06fb41a0a8f"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[3m                                            ms-marco-TinyBERT-L-2                                             \u001b[0m\n",
              "┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n",
              "┃\u001b[1m \u001b[0m\u001b[1m Score\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mText                                                                                    \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDoc_id\u001b[0m\u001b[1m \u001b[0m┃\n",
              "┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n",
              "│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196m0.9565\u001b[0m\u001b[1;38;5;196m \u001b[0m│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196mThe actual Windscribe headquarters is based in Toronto, Ontario, Canada. However, we are\u001b[0m\u001b[1;38;5;196m \u001b[0m│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196m  0   \u001b[0m\u001b[1;38;5;196m \u001b[0m│\n",
              "│\u001b[1;38;5;196m        \u001b[0m│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196ma diverse company with employees working on three continents, in over 7 countries.      \u001b[0m\u001b[1;38;5;196m \u001b[0m│\u001b[1;38;5;196m        \u001b[0m│\n",
              "├────────┼──────────────────────────────────────────────────────────────────────────────────────────┼────────┤\n",
              "│\u001b[35m \u001b[0m\u001b[35m0.1326\u001b[0m\u001b[35m \u001b[0m│\u001b[36m \u001b[0m\u001b[36mIn order to use Windscribe, you must have an existing internet connection, such as      \u001b[0m\u001b[36m \u001b[0m│\u001b[36m \u001b[0m\u001b[36m  6   \u001b[0m\u001b[36m \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mmobile data, home internet or public WiFi. Windscribe does not provide an internet      \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mconnection, we simply encrypt and reroute your existing internet connection through our \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36msecure VPN servers. This means that the bandwidth you use with the VPN is also being    \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mused with your Internet Service Provider (ISP).                                         \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "├────────┼──────────────────────────────────────────────────────────────────────────────────────────┼────────┤\n",
              "│\u001b[35m \u001b[0m\u001b[35m0.0483\u001b[0m\u001b[35m \u001b[0m│\u001b[36m \u001b[0m\u001b[36mWindscribe's encryption varies based on the protocol selected, as well as the format of \u001b[0m\u001b[36m \u001b[0m│\u001b[36m \u001b[0m\u001b[36m  2   \u001b[0m\u001b[36m \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mour app you are using: OpenVPN: Our OpenVPN implementation uses the AES-256-GCM cipher  \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mwith SHA512 auth and a 4096-bit RSA key. Perfect forward secrecy is also supported.     \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mIKEv2: Our in-app IKEv2 implementation utilizes AES-256-GCM for encryption, SHA-256 for \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mintegrity checks. Desktop and Android apps use ECP384 for Diffie-Hellman key negotiation\u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36m(DH group 20), and iOS uses ECP521 for Diffie-Hellman key negotiation (DH group 21).    \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mWireGuard: WireGuard is an opinionated protocol that uses ChaCha20 for symmetric        \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mencryption, authenticated with Poly1305; Curve25519 for ECDH; BLAKE2s for hashing and   \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "│\u001b[35m        \u001b[0m│\u001b[36m \u001b[0m\u001b[36mkeyed hashing; SipHash24 for hashtable keys; and HKDF for key derivation.               \u001b[0m\u001b[36m \u001b[0m│\u001b[36m        \u001b[0m│\n",
              "└────────┴──────────────────────────────────────────────────────────────────────────────────────────┴────────┘\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">                                            ms-marco-TinyBERT-L-2                                             </span>\n",
              "┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\">  Score </span>┃<span style=\"font-weight: bold\"> Text                                                                                     </span>┃<span style=\"font-weight: bold\"> Doc_id </span>┃\n",
              "┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n",
              "│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\"> 0.9565 </span>│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\"> The actual Windscribe headquarters is based in Toronto, Ontario, Canada. However, we are </span>│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\">   0    </span>│\n",
              "│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\">        </span>│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\"> a diverse company with employees working on three continents, in over 7 countries.       </span>│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\">        </span>│\n",
              "├────────┼──────────────────────────────────────────────────────────────────────────────────────────┼────────┤\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\"> 0.1326 </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> In order to use Windscribe, you must have an existing internet connection, such as       </span>│<span style=\"color: #008080; text-decoration-color: #008080\">   6    </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> mobile data, home internet or public WiFi. Windscribe does not provide an internet       </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> connection, we simply encrypt and reroute your existing internet connection through our  </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> secure VPN servers. This means that the bandwidth you use with the VPN is also being     </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> used with your Internet Service Provider (ISP).                                          </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "├────────┼──────────────────────────────────────────────────────────────────────────────────────────┼────────┤\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\"> 0.0483 </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> Windscribe's encryption varies based on the protocol selected, as well as the format of  </span>│<span style=\"color: #008080; text-decoration-color: #008080\">   2    </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> our app you are using: OpenVPN: Our OpenVPN implementation uses the AES-256-GCM cipher   </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> with SHA512 auth and a 4096-bit RSA key. Perfect forward secrecy is also supported.      </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> IKEv2: Our in-app IKEv2 implementation utilizes AES-256-GCM for encryption, SHA-256 for  </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> integrity checks. Desktop and Android apps use ECP384 for Diffie-Hellman key negotiation </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> (DH group 20), and iOS uses ECP521 for Diffie-Hellman key negotiation (DH group 21).     </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> WireGuard: WireGuard is an opinionated protocol that uses ChaCha20 for symmetric         </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> encryption, authenticated with Poly1305; Curve25519 for ECDH; BLAKE2s for hashing and    </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\">        </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> keyed hashing; SipHash24 for hashtable keys; and HKDF for key derivation.                </span>│<span style=\"color: #008080; text-decoration-color: #008080\">        </span>│\n",
              "└────────┴──────────────────────────────────────────────────────────────────────────────────────────┴────────┘\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "\u001b[3m                          ms-marco-TinyBERT-L-2                           \u001b[0m\n",
              "┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n",
              "┃\u001b[1m \u001b[0m\u001b[1m Score\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mText                                                \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDoc_id\u001b[0m\u001b[1m \u001b[0m┃\n",
              "┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n",
              "│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196m0.9834\u001b[0m\u001b[1;38;5;196m \u001b[0m│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196mWhere is Windscribe located?                        \u001b[0m\u001b[1;38;5;196m \u001b[0m│\u001b[1;38;5;196m \u001b[0m\u001b[1;38;5;196m  0   \u001b[0m\u001b[1;38;5;196m \u001b[0m│\n",
              "├────────┼──────────────────────────────────────────────────────┼────────┤\n",
              "│\u001b[35m \u001b[0m\u001b[35m0.1294\u001b[0m\u001b[35m \u001b[0m│\u001b[36m \u001b[0m\u001b[36mWhat kind of encryption does Windscribe use?        \u001b[0m\u001b[36m \u001b[0m│\u001b[36m \u001b[0m\u001b[36m  2   \u001b[0m\u001b[36m \u001b[0m│\n",
              "├────────┼──────────────────────────────────────────────────────┼────────┤\n",
              "│\u001b[35m \u001b[0m\u001b[35m0.0226\u001b[0m\u001b[35m \u001b[0m│\u001b[36m \u001b[0m\u001b[36mCan I use Windscribe without an internet connection?\u001b[0m\u001b[36m \u001b[0m│\u001b[36m \u001b[0m\u001b[36m  6   \u001b[0m\u001b[36m \u001b[0m│\n",
              "└────────┴──────────────────────────────────────────────────────┴────────┘\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">                          ms-marco-TinyBERT-L-2                           </span>\n",
              "┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓\n",
              "┃<span style=\"font-weight: bold\">  Score </span>┃<span style=\"font-weight: bold\"> Text                                                 </span>┃<span style=\"font-weight: bold\"> Doc_id </span>┃\n",
              "┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩\n",
              "│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\"> 0.9834 </span>│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\"> Where is Windscribe located?                         </span>│<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-weight: bold\">   0    </span>│\n",
              "├────────┼──────────────────────────────────────────────────────┼────────┤\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\"> 0.1294 </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> What kind of encryption does Windscribe use?         </span>│<span style=\"color: #008080; text-decoration-color: #008080\">   2    </span>│\n",
              "├────────┼──────────────────────────────────────────────────────┼────────┤\n",
              "│<span style=\"color: #800080; text-decoration-color: #800080\"> 0.0226 </span>│<span style=\"color: #008080; text-decoration-color: #008080\"> Can I use Windscribe without an internet connection? </span>│<span style=\"color: #008080; text-decoration-color: #008080\">   6    </span>│\n",
              "└────────┴──────────────────────────────────────────────────────┴────────┘\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "console.print(\"Hello! How can I help you today?\")\n",
        "q = input(\"User: \")\n",
        "results_a = model.rank(q, answers, return_documents=True, top_k=3)\n",
        "id = results_a[0]['corpus_id']\n",
        "typingPrint(answers[id])\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        },
        "id": "Yr9OTNv8Jngm",
        "outputId": "57eafa49-473b-4c8c-c876-f8dc69f283be"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Hello! How can I help you today?\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Hello! How can I help you today?\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "User: where is Windscribe?\n",
            "The actual Windscribe headquarters is based in Toronto, Ontario, Canada. However, we are a diverse company with employees working on three continents, in over 7 countries."
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "console.print(\"Hello! How can I help you today?\")\n",
        "q = input(\"User: \")\n",
        "results_a = model.rank(q, answers, return_documents=True, top_k=3)\n",
        "id = results_a[0]['corpus_id']\n",
        "typingPrint(answers[id])"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        },
        "id": "owhyAncLJnHF",
        "outputId": "3c174fe2-dd2b-4613-cc8b-b430428f4f0e"
      },
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Hello! How can I help you today?\n"
            ],
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">Hello! How can I help you today?\n",
              "</pre>\n"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "User: what are Windscribe's encryptions?\n",
            "Windscribe's encryption varies based on the protocol selected, as well as the format of our app you are using: OpenVPN: Our OpenVPN implementation uses the AES-256-GCM cipher with SHA512 auth and a 4096-bit RSA key. Perfect forward secrecy is also supported. IKEv2: Our in-app IKEv2 implementation utilizes AES-256-GCM for encryption, SHA-256 for integrity checks. Desktop and Android apps use ECP384 for Diffie-Hellman key negotiation (DH group 20), and iOS uses ECP521 for Diffie-Hellman key negotiation (DH group 21). WireGuard: WireGuard is an opinionated protocol that uses ChaCha20 for symmetric encryption, authenticated with Poly1305; Curve25519 for ECDH; BLAKE2s for hashing and keyed hashing; SipHash24 for hashtable keys; and HKDF for key derivation."
          ]
        }
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": [],
      "include_colab_link": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    },
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "07b4ca88df3e4314a2ba139052d100dd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_c0e0f6e6b7ce46e4806d0ed78ef53b3e",
              "IPY_MODEL_7c91d404704940208141c725ed1c8d8f",
              "IPY_MODEL_950bb6a7d0334f85a3f3c6d94a51d53d"
            ],
            "layout": "IPY_MODEL_8d7ef8871cd44cc9a55f082e3ae79951"
          }
        },
        "c0e0f6e6b7ce46e4806d0ed78ef53b3e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_960d5e51478a403a93bc731a5955b4e2",
            "placeholder": "​",
            "style": "IPY_MODEL_551c3d866df54bc4aeb755bffcad77bc",
            "value": "config.json: 100%"
          }
        },
        "7c91d404704940208141c725ed1c8d8f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1455f7eafdfa4ac6a8d9eaec449cd3e1",
            "max": 612,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_7e142612ed8046e581ef906fe4db285f",
            "value": 612
          }
        },
        "950bb6a7d0334f85a3f3c6d94a51d53d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_0b3d7425dc0e435199e99e660831a3fd",
            "placeholder": "​",
            "style": "IPY_MODEL_b14e7e93829e4f42b83c73d02232aa04",
            "value": " 612/612 [00:00&lt;00:00, 14.2kB/s]"
          }
        },
        "8d7ef8871cd44cc9a55f082e3ae79951": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "960d5e51478a403a93bc731a5955b4e2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "551c3d866df54bc4aeb755bffcad77bc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1455f7eafdfa4ac6a8d9eaec449cd3e1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7e142612ed8046e581ef906fe4db285f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "0b3d7425dc0e435199e99e660831a3fd": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b14e7e93829e4f42b83c73d02232aa04": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "30468f04c6494ffd8f4dc630ef048e8c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_8202a5f0755e455fa608ec3e3704b179",
              "IPY_MODEL_3f09f534fe50454b8d6c936e22c4a61f",
              "IPY_MODEL_0386e36506204b438bcbacff7de4e22a"
            ],
            "layout": "IPY_MODEL_deac46cc155943d184842e55e65c94bb"
          }
        },
        "8202a5f0755e455fa608ec3e3704b179": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_773961d9d12f41be8db25e37faf837c4",
            "placeholder": "​",
            "style": "IPY_MODEL_2f78b6329da7494d8b4a449ba648b868",
            "value": "pytorch_model.bin: 100%"
          }
        },
        "3f09f534fe50454b8d6c936e22c4a61f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9ee640e35bf04de8a56c670af3a0336b",
            "max": 17565609,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_4067a65a210c4e2e9bcc450ae8756717",
            "value": 17565609
          }
        },
        "0386e36506204b438bcbacff7de4e22a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d456fd3fbf174fe2b0a1bb4089112c6b",
            "placeholder": "​",
            "style": "IPY_MODEL_24819a3291c84586a2fe8592e535d707",
            "value": " 17.6M/17.6M [00:00&lt;00:00, 42.0MB/s]"
          }
        },
        "deac46cc155943d184842e55e65c94bb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "773961d9d12f41be8db25e37faf837c4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2f78b6329da7494d8b4a449ba648b868": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9ee640e35bf04de8a56c670af3a0336b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "4067a65a210c4e2e9bcc450ae8756717": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "d456fd3fbf174fe2b0a1bb4089112c6b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "24819a3291c84586a2fe8592e535d707": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "89e37a58389d4607951dc4057b057d1d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_fda8c1196cd34866be355915fb7d78a8",
              "IPY_MODEL_02bf05f541de447f894878719bb44101",
              "IPY_MODEL_e688bffe76924ecab38507a61d27d4e2"
            ],
            "layout": "IPY_MODEL_336525189f2543b99ca2c4ccd04d92ad"
          }
        },
        "fda8c1196cd34866be355915fb7d78a8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_18cef3a01ab3482d884de1efea4062db",
            "placeholder": "​",
            "style": "IPY_MODEL_04434fd220dd43768a24ce8d586921d3",
            "value": "tokenizer_config.json: 100%"
          }
        },
        "02bf05f541de447f894878719bb44101": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b539c8d3c59845258f8ce66fe2f5e727",
            "max": 543,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_2ff53ee93f104c939fc3e7913116169a",
            "value": 543
          }
        },
        "e688bffe76924ecab38507a61d27d4e2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_e387031473414d6f99c99d286c233ae6",
            "placeholder": "​",
            "style": "IPY_MODEL_c80065725b5945239a9bf7678b4bb779",
            "value": " 543/543 [00:00&lt;00:00, 19.6kB/s]"
          }
        },
        "336525189f2543b99ca2c4ccd04d92ad": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "18cef3a01ab3482d884de1efea4062db": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "04434fd220dd43768a24ce8d586921d3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b539c8d3c59845258f8ce66fe2f5e727": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2ff53ee93f104c939fc3e7913116169a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "e387031473414d6f99c99d286c233ae6": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c80065725b5945239a9bf7678b4bb779": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "8c7a4c4662ef44cfb8c0cb109b9ee03b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_90fba3f54b864083bffcab1cd8a3ee13",
              "IPY_MODEL_c0dd177cea764ea5b41b3522f6964a61",
              "IPY_MODEL_b0ad75afdac04d42b7d6c506004366d1"
            ],
            "layout": "IPY_MODEL_1742ac4d8e904dfba25e0d01327af695"
          }
        },
        "90fba3f54b864083bffcab1cd8a3ee13": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_72b5138ce3ce47718e61ed095e89d1f2",
            "placeholder": "​",
            "style": "IPY_MODEL_44b72d96738a47a9b43ac2029ef154e8",
            "value": "vocab.txt: 100%"
          }
        },
        "c0dd177cea764ea5b41b3522f6964a61": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7d6a6f99ef514aa99cf9d4b19ddbb301",
            "max": 231508,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_78918b883ca04c8eb98777fc2e5ffa59",
            "value": 231508
          }
        },
        "b0ad75afdac04d42b7d6c506004366d1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_bb6807450d634f51b420e1cbe73b073f",
            "placeholder": "​",
            "style": "IPY_MODEL_c60a4b63676a43ab8e2644c03f28ec50",
            "value": " 232k/232k [00:00&lt;00:00, 2.64MB/s]"
          }
        },
        "1742ac4d8e904dfba25e0d01327af695": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "72b5138ce3ce47718e61ed095e89d1f2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "44b72d96738a47a9b43ac2029ef154e8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "7d6a6f99ef514aa99cf9d4b19ddbb301": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "78918b883ca04c8eb98777fc2e5ffa59": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "bb6807450d634f51b420e1cbe73b073f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "c60a4b63676a43ab8e2644c03f28ec50": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "14c7c742e9044a22af6a54ba0a49d748": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_e3fdf8eee24c47a68a1d3bb024198830",
              "IPY_MODEL_ae2bb3aa26cb4e3bb9d0ef8ab375cabd",
              "IPY_MODEL_b20327442fce42a78857a9e4509ec99d"
            ],
            "layout": "IPY_MODEL_6b6bcfa595554f6c809a5d8688b3ebf9"
          }
        },
        "e3fdf8eee24c47a68a1d3bb024198830": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_bb6f13896e97431598f075975b5991b1",
            "placeholder": "​",
            "style": "IPY_MODEL_2214b0ccd2dd442897110e7aa2237ff2",
            "value": "special_tokens_map.json: 100%"
          }
        },
        "ae2bb3aa26cb4e3bb9d0ef8ab375cabd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1b6946a2d54849acba532d4988823c21",
            "max": 112,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_b84cd7b1f5f34c54a5ce773cdc4fa7e6",
            "value": 112
          }
        },
        "b20327442fce42a78857a9e4509ec99d": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_d73f804d2f2c478a94eecc17ffc8afaa",
            "placeholder": "​",
            "style": "IPY_MODEL_cf19e4b74ca148d193fad4103a8eb146",
            "value": " 112/112 [00:00&lt;00:00, 3.66kB/s]"
          }
        },
        "6b6bcfa595554f6c809a5d8688b3ebf9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "bb6f13896e97431598f075975b5991b1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2214b0ccd2dd442897110e7aa2237ff2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "1b6946a2d54849acba532d4988823c21": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b84cd7b1f5f34c54a5ce773cdc4fa7e6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "d73f804d2f2c478a94eecc17ffc8afaa": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cf19e4b74ca148d193fad4103a8eb146": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}